font-display
는 @font-face
규칙 안에서 사용되며, 웹 폰트를 로딩할 때 텍스트를 어떻게 보여줄지를 브라우저에 지시하는 속성입니다.
@font-face {
font-family: 'MyFont';
src: url('myfont.woff2') format('woff2');
font-display: swap;
}
폰트가 로드될 때가지 텍스트가 안 보이는(FOUT) 시간입니다. 이 시간 동안 브라우저는 웹 폰트를 기다립니다.
블록 기간이 지나고 나면, 브라우저는 대체 폰트(fallback)를 사용합니다. 이후 웹 폰트가 도착하면 웹 폰트로 교체된니다.
즉, swap period는 대체 폰트를 쓰다가 웹 폰트로 "스왑"할 수 있는 시간입니다.
font-display
값 자세히 보기font-display: auto
block
과 유사한 동작을 합니다.block period | 보통 최대 3초 |
swap period | 최대 수집 초까지 가능(브라우저에 따라 다름) |
font-display: block
block period | 최대 3초 |
swap period | 폰트가 로드되면 언제든 교체됨(오래 유지됨) |
font-display: swap
✅ 가장 많이 사용됨block period | 거의 0초 |
swap period | 무제한 (폰트 로드되면 교체됨) |
📌 장점: FOIT 방지 → 텍스트는 항상 보이고, 폰트는 나중에 교체
⚠️ 단점: 웹 폰트가 나중에 갑자기 바뀌면서 레이아웃 변화 가능
font-display: fallback
block period | 약 100ms ~ 500ms |
swap period | 약 3초 이하 |
📌 장점: 빠른 표시와 성능 균형
⚠️ 단점: 웹 폰트가 늦으면 아예 안 바뀔 수 있음
font-display: optional
fallback
과 매우 유사하지만, 브라우저가 폰트 로드를 "생략"할 수도 있음block period | 약 100ms 이하 |
swap period | 짧고 조건부 (느리면 아예 폰트 다운로드 안 함) |
📌 장점: 성능 최우선. 저사양/저속 환경에서 유리 ⚠️ 단점: 웹 폰트가 전혀 적용되지 않을 수 있음
값 | block period | swap period | 폰트 경험 |
---|---|---|---|
auto | ~3초 | 길게 가능 | 불확실 |
block | ~3초 | 무제한 | FOIT 위험 |
swap | 0초 | 무제한 | 👍 추천 |
fallback | ~100-500ms | ~3초 | 안정적 |
optional | ~100ms 또는 0 | 짧고 조건부 | 빠르지만 불확실 |